<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // call 改变this指向
        const obj = {
            msg: 'hello'
        }
        const abc = {
            demo: 'hhh'
        }
        function fn(x, y) {
            console.log(this)
            return x + y
        }
        // const res = fn(1, 2) // window 3
        const res = fn.call(obj, 1, 2) // obj 3
        console.log(res)

        // fn.call()
        // 1. 改变this的指向
        // 2. 会调用函数，立即执行，返回函数调用结果
        // 3. 注意，第一个参数就是要让this指向的那个对象
        //      后面紧跟着的是参数列表

        const obj2 = {
            name: 'hw',
            getName() {
                console.log(this)
                console.log(this.name)
            }
        }
        obj3 = {
            name: 'iphone'
        }
        obj2.getName()
        obj2.getName.call(obj3)
    </script>
</body>

</html>